package com.xinqi.modules.sys.dict.mapper;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xinqi.common.mybatis.data.repo.SuperMapper;
import com.xinqi.modules.sys.dict.domain.DictDocumentEntity;
import com.xinqi.modules.sys.dict.dto.req.DictDocumentQueryDTO;
import com.xinqi.modules.sys.dict.dto.rsp.DictDocumentResultDTO;
import com.xinqi.modules.sys.dict.dto.rsp.DictDocumentTreeResultDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 文档分类字典表数据层
 *
 * @author: gzy
 * @date: 2023/05/28
 */
@Mapper
public interface DictDocumentMapper extends SuperMapper<DictDocumentEntity> {
    Page<DictDocumentResultDTO> findPage(Page<Object> page, @Param("dto") DictDocumentQueryDTO query);

    List<DictDocumentResultDTO> findList(@Param("dto") DictDocumentQueryDTO query);

    List<DictDocumentResultDTO> selectAll();

    List<DictDocumentTreeResultDTO> selectAllTreeBase();

    List<DictDocumentResultDTO> selectSubListByParentId(@Param("parentId") Long parentId);

    List<DictDocumentResultDTO> selectSubListByParentCode(@Param("parentCode") String parentCode);

    int selectCountByCode(@Param("dictCode") String dictCode);

    Page<DictDocumentResultDTO> findByPage(Page<Object> page, @Param("dto") DictDocumentQueryDTO query);

    int deleteOutById(@Param("id") Long id);

    String selectDictNameByCode(@Param("dictCode") String dictCode);
}
